package com.ming.security.proxy;

import java.util.ArrayList;
import java.util.Collection;

public class ArrayListProxy<E> extends ArrayList<E> {

    /**
     * 重写ArrayList的所有构造函数---start
     */
    public ArrayListProxy(Collection<? extends E> c) {
        super(c);
    }

    public ArrayListProxy(int initialCapacity) {
        super(initialCapacity);
    }


    public ArrayListProxy() {
        super();
    }
    //重写ArrayList的所有构造函数---end

    /**
     * 对 ArrayList 的 add() 的方法进行封转返回  ArrayListProxy 来实现 链式添加
     * @param e
     * @return
     */
    public ArrayListProxy<E> addObject(E e){
        if(this.add(e)){
            return this;
        }
        throw new ArrayStoreException("ArrayListProxy add element fail!");
    }

    /**
     * 对 ArrayList 的 addAll() 的方法进行封转返回  ArrayListProxy 来实现 链式添加
     */
    public ArrayListProxy<E> addAllObject(Collection<? extends E> e){
        if(this.addAll(e)){
            return this;
        }
        throw new ArrayStoreException("ArrayListProxy addAll element fail!");
    }
}